home *** CD-ROM | disk | FTP | other *** search
Text File | 2000-09-28 | 2.0 KB | 69 lines | [TEXT/CWIE] |
- //• ------------------------------------------------------------------------------------------ •
- //•
- //• Copyright © 1996 Apple Computer, Inc., All Rights Reserved
- //•
- //•
- //• You may incorporate this sample code into your applications without
- //• restriction, though the sample code has been provided "AS IS" and the
- //• responsibility for its operation is 100% yours. However, what you are
- //• not permitted to do is to redistribute the source as "DSC Sample Code"
- //• after having made changes. If you're going to re-distribute the source,
- //• we require that you make it clear in the source that the code was
- //• descended from Apple Sample Code, but that you've made changes.
- //•
- //• Authors:
- //• Chris De Salvo
- //•
- //• ------------------------------------------------------------------------------------------ •
-
- //• ------------------------------ Includes
-
- #include <QDOffscreen.h>
- #include <Types.h>
-
- #include "Blitter.h"
-
- //• ------------------------------ Private Definitions
- //• ------------------------------ Private Types
- //• ------------------------------ Private Variables
- //• ------------------------------ Private Functions
- //• ------------------------------ Public Variables
-
- //• -------------------- TransBitBlit
-
- void
- TransBitBlit(UInt8 *image, CGrafPtr dest, UInt32 width, UInt32 height, UInt32 fullWidth, SInt32 x, SInt32 y)
- {
- UInt32 srcRowBytes, destRowBytes;
- UInt8 *srcBits, *destBits;
- UInt32 h, v;
-
- srcRowBytes = fullWidth;
-
- //• Find the base address and rowbytes of the destination buffer
- destRowBytes = (**(*dest).portPixMap).rowBytes & 0x7FFF;
- destBits = (unsigned char *) GetPixBaseAddr(GetGWorldPixMap(dest));
-
- //• Jump down to the target pixel in the destination
- destBits += y * destRowBytes;
- destBits += x;
-
- srcBits = image;
-
- for (v = 0; v < height; v++)
- {
- for (h = 0; h < width; h++)
- {
- //• Our transparent color is palette index zero
- if (*srcBits)
- *destBits = *srcBits;
-
- destBits++;
- srcBits++;
- }
-
- srcBits += srcRowBytes - width;
- destBits += destRowBytes - width;
- }
- }
-